import request from '@/config/axios'

// 课程签到学生记录 VO
export interface SignStudentLogVO {
  id: string // 主键
  courseId: string // 课程ID
  accountId: number // 学生账号ID
  startDate: Date // 签到时间
  endDate: Date // 签退时间
  isSignIn: boolean // 是否签到
  isSignOut: boolean // 是否签退
  isBeLate: boolean // 是否迟到
  isLeaveEarly: boolean // 是否早退
  signLogId: number // 课程签到记录ID
  courseStudentId: number // 课程学生ID
  remark: string // 备注
}

// 学生签到明细响应VO
export interface CourseSignStudentLogListRespVO {
  studentName: string // 学生名称
  studentCode: string // 学号
  studentPhone: string // 学生手机
  signInStatus: number // 签到状态（0: 漏签，1: 正常，2: 迟到）
  signOutStatus: number // 签退状态（0: 漏签，1: 正常，2: 早退）
  signInTime: string // 签到时间
  signOutTime: string // 签退时间
}

// 课程签到学生记录 API
export const SignStudentLogApi = {
  // 查询课程签到学生记录分页
  getSignStudentLogPage: async (params: any) => {
    return await request.get({ url: `/course/sign-student-log/page`, params })
  },

  // 查询课程签到学生记录详情
  getSignStudentLog: async (id: number) => {
    return await request.get({ url: `/course/sign-student-log/get?id=` + id })
  },

  // 新增课程签到学生记录
  createSignStudentLog: async (data: SignStudentLogVO) => {
    return await request.post({ url: `/course/sign-student-log/create`, data })
  },

  // 修改课程签到学生记录
  updateSignStudentLog: async (data: SignStudentLogVO) => {
    return await request.put({ url: `/course/sign-student-log/update`, data })
  },

  // 删除课程签到学生记录
  deleteSignStudentLog: async (id: number) => {
    return await request.delete({ url: `/course/sign-student-log/delete?id=` + id })
  },

  // 导出课程签到学生记录 Excel
  exportSignStudentLog: async (params) => {
    return await request.download({ url: `/course/sign-student-log/export-excel`, params })
  },

  // 学生签到明细
  listSignStudentLog: async (params: any) => {
    return await request.get({ url: `/course/sign-student-log/list`, params })
  }
}
